package com.diyunapp.xilinapp.utils;

import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class BitmapUtil {
    public static Bitmap createThumbnail(Resources res, int id, int width,
                                         int height) {

        // options它是一个图片采样的参数
        BitmapFactory.Options options = new BitmapFactory.Options();

        // inJustDecodeBounds把这个属性设置成true，代表此次采样不分配内存给图片内容。
        options.inJustDecodeBounds = true;

        // 把设置好的采样的属性应用到具体的采样过程上，采完 之后，id对应的图片的宽高等信息就在options里了
        BitmapFactory.decodeResource(res, id, options);

        // 取出图片的宽高
        int originalWidth = options.outWidth;
        int originalHeight = options.outHeight;

        // 计算比例值
        int ratioWidth = originalWidth / width;
        int ratioHeight = originalHeight / height;

        // 把合适的比例值 设置给Options
        options.inSampleSize = ratioHeight > ratioWidth ? ratioHeight
                : ratioWidth;

        // 为第二次采样做准备，设置inJustDecodeBounds为false，代表了此次采样分配内存给图片内容。
        options.inJustDecodeBounds = false;
        // 把 二次采样的结果返回
        return BitmapFactory.decodeResource(res, id, options);
    }

    public static Bitmap createThumbnail(String filePath, int width, int height) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(filePath, options);

        // 取出图片的宽高
        int originalWidth = options.outWidth;
        int originalHeight = options.outHeight;

        // 计算比例值
        int ratioWidth = originalWidth / width;
        int ratioHeight = originalHeight / height;

        // 把合适的比例值 设置给Options
        options.inSampleSize = ratioHeight > ratioWidth ? ratioHeight
                : ratioWidth;

        // 为第二次采样做准备，设置inJustDecodeBounds为false，代表了此次采样分配内存给图片内容。
        options.inJustDecodeBounds = false;
        // 把 二次采样的结果返回

        return BitmapFactory.decodeFile(filePath, options);
    }
}
